Method for inserting objects into a working area in a computer application

ABSTRACT

The present invention relates to a method for facilitating the insertion of an object in a working area on a computer display, and is implemented in a computer application software. The method comprises the steps of indicating at least one subarea of the working area where an object is insertable, indicating an object type in association with each subarea, an object of said object type being insertable in said subarea, receiving input from the user selecting one of the at least one subarea, and inserting in the selected subarea an object of the type that is indicated at the selected subarea. Through this method, the user only needs to provide one single piece of input in order to insert an object in a valid location in a working area.

This application is the national phase under 35 U.S.C. § 371 of PCTInternational Application No. PCT/SE98/02183 which has an Internationalfiling date of Nov. 30, 1998, which designated the United States ofAmerica and was not published in English.

TECHNICAL FIELD

The present invention relates to a method for fascilitating theinsertion of an object into a working area on a computer display, saidmethod being implemented in a computer application software andcomprising the step of receiving input from the user selecting where onthe screen an object of a previously specified object type is to beinserted.

BACKGROUND ART

In numerous computer applications, objects are selected by a user andinserted into an area of a computer display. This is especially frequentin different kinds of programming and designing, where objects belongingto several different object types are available to the user forinsertion into a working area, such as a worksheet, a document, or anyother limited area of a screen, used by the active software applicationto display objects. The user first clicks on a particular type of object(e.g. a certain type of programming item) and then clicks on thelocation where an object of the particular type is desired.

In some applications a drag-and-drop procedure is utilized, meaning thatthe user clicks on the object type and without releasing the mousebutton moves the cursor to the desired location and then releases thebutton. An object of the chosen type is hereby inserted at thislocation. This functionality is implemented in e.g. Viso from VisioCorp.

In other applications the cursor changes its appearance when an objecttype is clicked on, to indicate that an object will be inserted at thelocation of the next click. This functionality is implemented in e.g.Corel Draw.

In some cases, objects of certain object types should only be insertedinto specific parts of the working area, or in connection with objectsof other predetermined object types. Particularly in certain types ofprogramming, e.g. network PLC-programming, where the overall structurehas to follow a predetermined pattern, this is a common situation.Inserting an object into a location where it is not ment to be locatedmay result in a non-working object, or even in a non-working program,with tedious error searching as a result.

It is known in the art to implement test routines for each insertion, inorder to avoid erroneous placement of objects. This can either beaccomplished by making certain object types unavailable to the userunless certain predetermined conditions are met, or by refusing theinsertion of a selected object into certain areas. However, the userthen finds him/herself in a situation where the intended operation isimpossible to perform, e.g. the object he/she intends to insert into acertain location is refused by the application. This is frustrating,especially as the user does not obtain information regarding why theobject cannot be inserted, nor regarding what object can be insertedinstead.

An even larger problem with known methods for inserting objects ofdifferent types into a working area is the fact that the cursor alwaysneeds to be moved between the icons or menus from which the object typeis chosen, and the desired location.

Another problem is the icons or menus themselves. If menus are used, itcan be difficult to quickly find the desired object type. Sometimesseveral sub-menus need to be opened in order to find a specific objecttype. If icons are used they normally provide a better overview, butinstead they take up valuable space that is needed for other purposes.

SUMMARY OF THE INVENTION

A first object of the present invention is therefore to provide a methodfor inserting an object into a working area on a computer screen, thatsimplifies the procedure.

A second object of the present invention is to provide a method forinserting an object into a working area on a computer screen, whereinthe need for icons or menus is eliminated.

A third object of the present invention is to provide a method forinserting an object into a working area on a computer screen, whereinthe problem of attempting to make invalid insertions is avoided.

These objects are accomplished by using a method according to thepreamble of claim 1, further characterized by the steps of indicating atleast one subarea of the working area where an object is insertable,indicating an object type in association with each subarea, an object ofsaid object type being insertable into said subarea, receiving inputfrom the user selecting one of said at least one subarea, and insertinginto the selected subarea an object of the type that is indicated at theselected subarea.

This results in a simple procedure for inserting objects into theworking area. Instead of having to first select an object type, and thento select a location, the user only has to make one selection. Asoftware implementing the method according to the invention indicates tothe user locations where insertions are possible, and what type ofobject is insertable at each location. The input needed from the user toperform an insertion is thus reduced from two to one. According to theinvention, one single piece of input is enough to insert an object at avalid location in the working area.

Further, the need for menus and icons is eliminated, as the user isgiven clear indications of what objects are insertable into the workingarea. There is no need to hide, or make unavailable, contents in a menu,as it is only available objects that are displayed.

The method according to the invention is preferably used whenrestrictions are imposed on what objects can be inserted into theworking area, and where they can be inserted. These restrictions can becaused for example by relationships between programming stepsconstituting a computer program, said steps being represented by theobjects, or by physical relationships between processes or physicalentities, said processes or entities being represented by the objects.

The inventive method avoids the above mentioned problem of makinginvalid insertions. These insertions can not even be attempted, as theuser, even before the action to insert an object is performed, is madeaware of what type of an object is insertable at a certain location.

A software implementing the method performs an identification of allpossible, valid insertions of objects into the working area andindicates them to the user. The user only has to decide which of theinsertions to perform.

According to one embodiment of the invention, the indication of said atleast one subarea of the working area where an object is insertableincludes graphically outlining said subarea.

According to another embodiment of the invention, the indication of saidat least one subarea is activatable and deactivatable by the user. Thismakes it possible for the user to examine the results of his/her workwithout the indications of subareas visible. When the user intends toinsert a new object, the indication is simply activated by giving acertain input to the software.

Input from the user is preferably received using a pointing device,preferably in electronic contact with the software application andcontrolling a cursor on the display.

This makes it very easy for the user to provide input to the softwareapplication regarding where in the working area the user wishes toinsert an object.

According to a further embodiment of the invention, the step ofindicating at least one subarea of the working area where an object of atype that is insertable can be performed in response to the action ofmoving the cursor into said subarea.

In this way, the step of indicating a subarea is closely associated withthe user activity of moving the mouse. No indications of subareas aredisplayed in the working area unless the user actually moves the cursorin the working area.

The step of indicating an object type in association with each subareapreferably comprises displaying a symbol representing said object typein connection to said subarea. According to one embodiment of theinvention, this symbol is displayed by changing the appearance of thecursor, in response to the action of moving the cursor into saidsubarea.

One application of the method is in the field of network design.Hereinafter, the term “network” is used for any collection of objects,operations, events, processes, options, conditions etc. that logicallyrelate to each other and form part of a system. Networks can appear inmany contexts, for example organisation charts, circuit block diagramsor computer programs, and can be designed, or programmed, with the helpof a computer in the above mentioned way by inserting objects ofdifferent types into a working area. Network programming is particularlyuseful when designing systems for automatic control, for examplePLC-systems.

Normally, several different object types are available, where each typehas specific physical properties. One object type can for examplerepresent physical events, while another might represent a conditionalstep, with several possible outcomes.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the present invention, given by way of exampleonly, will now be described in more detail, with reference to theaccompanying drawings.

FIG. 1 illustrates an environment in which the method according to theinvention may be used.

FIG. 2 is a schematic block diagram of a software application accordingto prior art.

FIG. 3 is a schematic block diagram of a software application accordingto the present invention.

FIG. 4 is an example of a working area on a display.

FIG. 5 is a flowchart of a first embodiment of the method according tothe invention.

FIG. 6 is a flowchart of a second embodiment of the method according tothe invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION

FIG. 1 illustrates an environment in which the method according to theinvention can be utilized. A software application 1, e.g. a programmingtool, is installed and running on a computer 2. A user 3 interacts withthe application 1, giving instructions 9 to the software applicationthrough a keyboard 4 and with a pointing means, preferably a mouse 5.The application presents the results of the user's actions on a displayunit, preferably a monitor 6, displaying to the user a working area 7,where operations corresponding to said actions are performed. Saidoperations may include inserting objects 8 into the working area 7,where they represent for example program actions or physical events.

FIG. 2 shows a software application 1′ according to prior art, suitedfor the insertion of objects into a working area. Said application 1′typically includes means 11 for receiving input from the user, means 12for deciding how to respond to the input from the user, and means 13 toinsert objects into the working area 7.

FIG. 3 shows a software application 1 according to the presentinvention. The software comprises identification means 15 foridentifying valid insertions of objects 8 into the working area 7. Thismeans 15 is similar in structure to the means 12 in prior art, but withthe important difference that it operates without waiting for userinput. Instead of, as in prior art, controlling whether an insertion ofan object requested by the user is in fact a valid insertion, the means15 are operative to constantly identify locations in the working areawhere objects 8 are insertable, and what type of object is insertable inevery location. In short, the means 15 anticipate all possibleinsertions that can be requested by the user, and identifies the onesthat are valid.

Further, the application 1 is provided with indication means 16, forindicating information to the user on the monitor. Again, the structureof means 16 is not in itself unique, and similar indication techniquescan be found in many software applications. According to the invention,however, the indication means 16 use identification data 17, supplied bythe identification means 15, to indicate all available, valid insertionsto the user in the present situation.

The software application 1 also comprises reception means 18 andinsertion means 19, similar to the reception means 11 and the insertionmeans 13 of the prior art, respectively.

In the present context, the means 15, 16, 18, 19 are software routinesincluded in the application 1. Of course, and as is well understood by aperson skilled in the art, in some cases one or several of these means15, 16, 18, 19 can be comprised of separate software, or softwareassociated with e.g. the monitor or mouse, said software operatingtogether with the software application 1.

In the following description of the method according to the invention,said software application 1 is a program network design tool, a workingarea 7 of which is shown in FIG. 4. This type of programming is used forexample in PLC-programming.

In the illustrated example, the program network 20 comprises two typesof items, namely step items 21, which represent one or several physicalactions, and transition items 22, which define conditions for moving theprogram control from one step item to another. Each item is representedby an object 21, 22 in the working area 7, and the relationship betweenthe two types of items impose restrictions on how items can be insertedinto the working area. For example, two step items cannot be connectedto each other without an intermediate transition item.

Reference numerals 23 a, 23 b, 23 c, 23 d indicate four of severalsubareas in the working area 7, where objects are insertable. Thesubareas are naturally located in connection to the existing network, asthis is where new objects can be inserted.

In the illustrated example, the subareas 23 a, 23 b, 23 c, 23 d areoutlined by rectangles 25, which identify and limit each subarea. Ofcourse, any indication using graphics, colour or text is possible.Further, in the vicinity of each subarea 23 a–d, an object type 26 a–dis indicated. Again, in the illustrated example, the object type 26 a–dassociated with each subarea 23 a–d respectively, is indicated by asymbol which represents the associated object type 26 a–d.

In the illustarted example, an inserted object normally includes an stepitem 21 and a transition item 22. Depending on where the object isinserted, however, the order of the two items vary. In subarea 23 a, anobject consisting of a transition item followed by an step item isinsertable. This object type is represented by the symbol 26 a. Insubarea 23 b, the order is reversed, and this object type is representedby the symbol 26 b.

Another possible object is a fork 24 a, 24 b, which indicates a divisionof the network path. A fork can be inserted before (23 c) or after (23d) a transition, and different symbols, 26 c and 26 d respectively, areassociated with the two types of forks.

FIG. 5 illustrates schematically a first embodiment of the methodaccording to the invention. In step 30, the identification means 15identifies subareas 23 a, 23 b of the working area where objects areinsertable. Further, in step 31, the identification means 15 identifieswhat type of object can be inserted in each subarea. As mentioned,following a step item there must be a transition item and vice versa.

When the identification of subareas and insertable object types isperformed, the program control waits (in step 32) for the user toactivate a grid 25, 26 a–d. This activation can be accomplished byhitting a key on the keyboard 4 or by using the mouse. Reception means18 are arranged to receive and respond to such input by instructing theindication means 16 to activate the grid. The grid 25, 26 a–d can takeon any number of forms, but has the purpose of indicating a plurality ofsubareas in the working area 7 (step 33 in FIG. 5), and in associationwith each subarea an object type (step 34 in FIG. 5). Both steps 33 and34 are performed by the indication means 16, which have receivedidentification data 17 from the identification means.

The program control now waits for the user to click in one of thesubareas (step 35), preferably using the mouse 5. Once a click in asubarea is detected by the reception means 18, the insertion means 19inserts an object of the indicated object type into the subarea. Forexample, if the user clicks in subarea 23 a, an object of type 26 a,consisting of a transition item and an step item is inserted into thesubarea. Note that the user accomplishes the entire insertion with justone click. As an insertable, valid object type is associated with eachsubarea, a selection of one of the subareas is sufficient for insertingan object.

This insertion affects the network, typically extending it to includemore items. The result of the insertion described above is the network20′ shown in FIG. 4 b. The program control now instructs theidentification means 15 to reidentify subareas and insertable objecttypes (step 37 and 38). This results in an update of the grid in step 39and 40, again using the indication means 16.

The program control then returns to step 35, and again waits for theuser to click in a subarea, for the insertion of a new object. Ofcourse, when the program control waits at for example step 35, the usercan choose to deactivate the grid or to peform other actions in theapplication, such as provide an item with additional data, defineparameters etc.

Another embodiment of the method according to the invention is showed inFIG. 6. Just as in FIG. 5, the first two steps 42, 43 identify subareasand insertable object types. Then, however, the program control waitsfor the user to move the mouse cursor into one of the subareas before(step 44). When the reception means 18 receive information of thissituation, the indication means 16 are instructed to indicate thisparticular subarea (step 45) and the object type that is insertible intothis subarea (step 46).

This indication technique is illustrated in FIGS. 4 b and 4 c, where thecursor 28 is located in a subarea 23′, 23″, resulting in the indicationof the subarea and object type with a rectangle 25′, 25″ and a symbol26′, 26″.

The program control then waits for a user action (step 47). If the usermoves the mouse cursor out of the subarea (move), the indications ofsubarea and insertable object type are removed (step 48) and programcontrol returns to step 44.

If the user does not move the cursor, but instead clicks in said subarea(click) an object is inserted into the subarea (step 49). This insertionaffects the network, typically extending it to include more items.Therefore, the program control now instructs the identification means 15to reidentify subareas and insertable object types (step 50 and 51),before returning to step 44.

Of course, it is possible, and even advantageous, to implement acombination of the two embodiments described above. For example, a gridincluding only the rectangles 25 can be activated and deactivated, andat the same time the mouse cursor appearance changes to indicate whattype of object is insertable into a subarea.

In some cases, for example when a fork 24 a, 24 b is inserted into theworking area 7, it can be necessary to indicate a second location 27 a,27 b, nemely where the fork rejoins with the main path of the network.When this is the case, the insertion of an object 36, 49 is followed bya program step 52, 53 waiting for additional user input.

If, in one subarea, objects of different object types are insertable,this can be indicated by dividing the rectangle 25 into several smallerfields, each with an object type indicated in its vicinity.Alternatively, a list or table can be displayed beside the subarea,indicating different insertable objects.

Another solution is to indicate one object type when the cursor is movedinto the subarea. Then, when the user presses the mouse button,alternative object types are indicated. The user can then move thecursor to the desired object type, and release the button in thislocation, resulting in an insertion of an object of this type. Note thatthe user still only makes one click with the mouse, although a cursormove is possibly made between the press and release actions.

Another solution, preferred by the applicant, is to indicate severalsubareas of the standard size, next to each other, each one with oneassociated object type. This is illustrated in FIG. 4 a, where objects26 a/26 c and 26 b/26 d are insertable at the same location. When theuser selects one of the subareas 23 a/23 c, 23 b/23 d, an object of thetype indicated in that particular subarea is inserted, and thesurrounding subareas are hidden or moved in the update following theinsertion.

Many variations of the method according to the present invention arepossible to a person skilled in the art. The appearance of theindications can, for example, be changed without loosing thefunctionality intended in the claims.

1. A method for creating a logical network by inserting a plurality ofobjects into a working area on a computer display, comprising the stepsof: displaying an existing network in said working area; identifying atleast one subarea of the working area where an object is validlyinsertable into said network; identifying at least one type of objectthat can be validly inserted into the network in said subarea; visuallyindicating said at least one subarea; visually indicating said at leastone object type in association with each indicated subarea; receivinginput from the user selecting one of said at least one object typeindicated in association with one of said at least one subarea; anddisplaying an extended network where an additional object of theselected type is inserted into the selected subarea, and said stepsbeing performed by a computer application software for creating alogical network.
 2. The method according to claim 1, wherein the step ofidentifying at least one subarea of the working area where an object isinsertable into said network comprises the step of graphically outliningsaid at least one subarea.
 3. The method according to claim 1 or 2,wherein the identification of said at least one subarea is activatableand deactivatable by the user.
 4. The method according to claim 1,wherein input from the user is received using a pointing device.
 5. Themethod according to claim 4, wherein the pointing device is inelectronic contact with the computer application and controls a cursoron the display.
 6. The method according to claim 4 or 5, wherein thestep of identifying at least one subarea of the working area where anobject is insertable into said network comprises the step of graphicallyoutlining said subarea when the cursor is moved into said subarea. 7.The method according to claim 4, wherein the step of indicating anobject type in association with each subarea comprises the step ofdisplaying a symbol representing said object type in connection to saidsubarea.
 8. The method according to claim 5, wherein the step ofindicating an object type in association with each subarea comprises thestep of changing the appearance of the cursor.
 9. The method accordingto claim 1, wherein the object types represent various physical itemsthat are inserted into the working area to create said network.
 10. Themethod according to claim 9, wherein the network represents a system forautomation.
 11. A computer-readable medium, on which is storedinstructions for one or several general purpose computers, comprisingmeans for enabling said one or said several computers to perform thesteps of the method according to claim
 1. 12. An apparatus for creatinga logical network by inserting a plurality of objects into a workingarea on a computer display, comprising: means for displaying an existingnetwork in said working area; means for identifying at least one subareaof the working area where an object is validly insertable into saidnetwork; means for identifying at least one type of object that can bevalidly inserted into the network in said subarea; means for visuallyindicating said at least one subarea on the computer display; means forvisually indicating said at least one object type in association witheach indicated subarea on the computer display; means for receivinginput from the user selecting one of said at least one object typeindicated in association with one of said at least one subarea; andmeans for displaying an extended network where an additional object ofthe selected type is inserted into the selected subarea, wherein acomputer application software is used to create the logical network. 13.The apparatus according to claim 12, wherein the means for identifyingat least one subarea of the working area where an object is insertableinto said network comprises means for graphically outlining said atleast one subarea.
 14. The apparatus according to claim 12 or 13,wherein the identification of said at least one subarea is activatableand deactivatable by the user.
 15. The apparatus according to claim 12,wherein input from the user is received using a pointing device.
 16. Theapparatus according to claim 15, wherein the pointing device is inelectronic contact with the computer application and controls a cursoron the display.
 17. The apparatus according to claim 15 or 16, whereinthe means for identifying at least one subarea of the working area wherean object is insertable into said network comprises means forgraphically outlining said subarea when the cursor is moved into saidsubarea.
 18. The apparatus according to claim 15, wherein the means forindicating an object type in association with each subarea comprisesmeans for displaying a symbol representing said object type inconnection to said subarea.
 19. The apparatus according to claim 16,wherein the means for indicating an object type in association with eachsubarea comprises means for changing the appearance of the cursor. 20.The apparatus according to claim 12, wherein the object types representvarious physical items that are inserted into the working area to createsaid network.
 21. The apparatus according to claim 20, wherein thenetwork represents a system for automation.
 22. The method according toclaim 1, wherein the step of visually indicating said at least oneobject type in association with each indicated subarea includes visuallyindicating said at least one object type with the existing network insaid working area.
 23. The method according to claim 1, wherein the stepof visually indicating said at least one object type in association witheach indicated subarea includes visually indicating said at least oneobject type within the associated indicated subarea.
 24. The apparatusaccording to claim 12, wherein the means for visually indicating said atleast one object type in association with each indicated subareaincludes means for visually indicating said at least one object typewith the existing network in said working area.
 25. The apparatusaccording to claim 12, wherein the means for visually indicating said atleast one object type in association with each indicated subareaincludes means for visually indicating said at least one object typewithin the associated indicated subarea.